import type {
  SysRoleDtlVo,
  SysRolePageQo,
  SysRoleQo,
  SysRoleVo,
} from '#/system/role'
import { http } from '@/utils/request/index'

/**
 * 获取角色分页列表
 * @param params 查询参数
 * @returns 角色列表
 */
export function getSysRolePageListApi(params: SysRolePageQo) {
  return http.request<PageResult<SysRoleVo>>('get', '/admin-api/system/sysRole/sysRolePage', {
    params,
  })
}

/**
 * 获取角色列表
 * @param params 查询参数
 * @returns 角色列表
 */
export function getSysRoleListApi(params?: SysRolePageQo) {
  return http.request<SysRoleVo[]>('get', '/admin-api/system/sysRole/sysRoleList', {
    params,
  })
}

/**
 * 获取角色详情
 * @param id 角色id
 * @returns 角色详情
 */
export function getSysRoleDetailsApi(id?: string) {
  return http.request<SysRoleDtlVo>('get', `/admin-api/system/sysRole/sysRoleDetails/${id}`)
}

/**
 * 新增角色
 * @param data 角色信息
 * @returns 角色id
 */
export function createSysRoleApi(data: SysRoleQo) {
  return http.request<string>('post', '/admin-api/system/sysRole/sysRoleCreate', {
    data,
  })
}

/**
 * 修改角色
 * @param data 角色信息
 * @returns 角色id
 */
export function updateSysRoleApi(data: SysRoleQo) {
  return http.request<string>('post', '/admin-api/system/sysRole/sysRoleUpdate', {
    data,
  })
}

/**
 * 删除角色
 * @param idList 角色id列表
 * @returns 角色id
 */
export function deleteSysRoleApi(idList: string[]) {
  return http.request<string>('post', '/admin-api/system/sysRole/sysRoleRemove', {
    params: {
      idList: idList.join(','),
    },
  })
}

/**
 * 启用角色
 * @param idList 角色id列表
 * @returns 角色id
 */
export function enableSysRoleApi(idList: string[]) {
  return http.request<string>('post', '/admin-api/system/sysRole/sysRoleEnable', {
    params: {
      idList: idList.join(','),
    },
  })
}

/**
 * 禁用角色
 * @param idList 角色id列表
 * @returns 角色id
 */
export function disableSysRoleApi(idList: string[]) {
  return http.request<string>('post', '/admin-api/system/sysRole/sysRoleDisable', {
    params: {
      idList: idList.join(','),
    },
  })
}
